package com.thinvent.recommend.mapper.base;

/**
 * 通用 MyBatis Mapper，提供常用的 CRUD 方法。
 *
 * @param <T>  实体类型
 * @param <ID> 主键类型
 */
public interface BaseMapper<T, ID> {

    /** 根据主键删除 */
    int deleteByPrimaryKey(ID id);

    /** 插入一条完整记录 */
    int insert(T record);

    /** 插入一条可选字段的记录 */
    int insertSelective(T record);

    /** 根据主键查询 */
    T selectByPrimaryKey(ID id);

    /** 根据主键更新可选字段 */
    int updateByPrimaryKeySelective(T record);

    /** 根据主键更新所有字段 */
    int updateByPrimaryKey(T record);
}
